本站维护手册

2022/04/12 16:00:00 2022/04/18 14:00:00 note hexo

本文档记录了建立基于hexo的网页系统的步骤,并对维护所需要的操作一一列出,日后的本站更新将依据该文档进行。

Note: 随时会更新维护策略

🌟 目前正在维护的论文主题列表

按任务分类

  • Anomaly detection / Outlier / Out-of-distribution
  • Interpretable / Explainable
  • Causal discovery
  • Data augmentation

按数据分类

  • Time series
  • Missing value / Irregular sampled / Imputation
  • Sequence
  • Heterogeneous

按深度学习架构分类

  • Recurrent neural network / RNN / LSTM / GRU
  • Autoencoder

按应用分类

  • Cloud native
  • Micro-service

🌟 目前正在维护的顶会列表

  • NeurIPS
  • SIGKDD
  • IJCAI
  • ICML
  • SIGIR
  • CVPR
  • WWW
  • ICLR
  • AAAI
  • SIGMOD
  • NDSS
  • ESEC/FSE
  • ICSE
  • ASE
  • ISSRE

🌟 制作新页面的规范

⚠️⚠️⚠️ 由于配置原因,最好将文章中的全角符号替换为半角符号+空格,以获得最佳的字体效果

页面配置

  1. 对于新的标签页
  • 可以直接在<hexo_path>使用命令hexo new page <new_page_name>
  • 可以在<hexo_path>/source下新建相应的文件夹,并手动在其中新建index.md文件
$ cd <hexo_path>/source
$ mkdir <new_folder>
$ cd <new_folder>
$ vim index.md

随后在<hexo_path>/_config.mashiro.yml中的menu字段进行配置:<display_name>: /<new_page_name>

  1. index.md文件的书写规范

⚠️ 仅有在<hexo_path>/source/_post中的文档,其中的tag字段可以被正确索引,其他目录中若包含tag字段则会导致部署失败。

  1. 普通markdown文件的书写规范

文件头示例如下,后续的文章标题从二级目录开始书写。

---
title: Some Notes
updated: 2022-04-12 20:00:00
date: 2022-04-12 16:07:32
tag: 
- note
- 5G
- 4G
- 5G NR
---
  1. 在适当的位置添加<--! more -->以控制文章在首页显示的摘要内容。

  2. 文档内部引用

⚠️ 需要参考<hexo_path>/public中生成的文档结构。一般的,<hexo_path>/source/_post<dir_name>/<file_name>.md文档将存储在<hexo_path>/public/uncategorized/<dir_name>/<file_name>/index.html

⚠️⚠️ hexo现已配置为无须/index.html后缀,文章内引用请使用/uncategorized/<dir_name>/<file_name>

页面部署

  1. 页面本地测试

访问https://localhost:4000以测试

$ hexo clean && hexo g && hexo s
  1. 页面部署

官方方法:代码如下。注意font-spider那一行,您的public文件夹中最深的html文件嵌套了几层,就应当在后面写几层的通配符,可以将上面这些语句保存为一个脚本文件,部署时运行一下就行了。

$ hexo clean
$ hexo g
$ font-spider public/*.html public/*/*.html public/*/*/*.html public/*/*/*/*.html public/*/*/*/*/*.html
$ hexo deploy

⚠️⚠️ 上述代码已写入<hexo_path>/mydeploy.sh,运行sudo ./mydeploy.sh

基于模版的小修改

添加文章更新时间, 并按更新时间倒序排列文章

本站模版中没有内置更新时间的显示,需要按需对模版做以下修改

更改Hexo策略

  1. 调整Hexo中post的默认生成格式:在{hexo_path}/scaffolds/post.md中指定默认模版样式
---
title: {{ title }}
date: {{ date }}
updated: {{ date }}
---
  1. 开启updated排序: 在.md文件的头部加入updated字段, 并完善该字段
  2. 调整 Hexo 主配置文件: 在<hexo_path>/_config.yml中更新文章排序为按照更新时间排序
# Home page setting
# path: Root path for your blogs index page. (default = '')
# per_page: Posts displayed per page. (0 = disable pagination)
# order_by: Posts order. (Order by date descending by default)
index_generator:
  path: ''
  per_page: 10
  order_by: -updated

更改模版样式

原主题默认没有更新时间显示的,所以需要自己新增更新时间显示。记主题文件夹为{theme_path}, 一般位于{hexo_path}/themes/{theme_name}

  1. 确定修改范围

查看了{theme_path}/layout文件夹下的post.ejs文件,里面引入的是 _partial/article的内容。找到{theme_path}/layout/_partial文件夹下的 article.ejs。其中关于时间的内容如下,说明日期部分引用了post/date,样式文件为article-date

<div class="article-meta">
<%- partial('post/date', {class_name: 'article-date', date_format: null}) %>
<%- partial('post/category') %>
</div>

修改范围即为:

  • {theme_path}/layout/_partial/article.ejs
  • {theme_path}/layout/_partial/post/date.ejs
  • {theme_path}/source/css/_partial/article.styl
  1. 新建updated.ejs

考虑兼容性,模仿{theme_path}/layout/_partial/post/date.ejs新建一个updated.ejs文件。

修改date.ejs如下,其中仅添加了<%= __('published') %>字段,用于定义语言。

<a href="<%- url_for(post.path) %>" class="<%= class_name %>">
  <%= __('published') %> <time class="dt-published" datetime="<%= date_xml(post.date) %>" itemprop="datePublished"><%= date(post.date, date_format) %></time>
</a>

新建相似的updated.ejs如下,其中定义了<%= __('updated') %>字段,用于定义语言。

<a href="<%- url_for(post.path) %>" class="<%= class_name %>">
  <%= __('updated') %> <time class="dt-published" datetime="<%= date_xml(post.updated) %>" 
  itemprop="dateUpdated"><%= date(post.updated, date_format) %></time>
</a>
  1. 增加字段语言定义

由于date.ejsupdated.ejs中分别引入了publishedupdated字段,因此需要在语言文件中新增对应的字段。
语言文件在 {theme_path}/languages中,按照主题的语言设置,修改对应的语言文件,没指定就修改default.yml文件。

{theme_path}/languages/zh-CN.yml中增加下述内容,格式为字段名: 字段值

published: 发布于
updated: 更新于
  1. 修改article.ejs

该文件中记录了文章日期列的显示内容,在已有的发布时间后增加更新时间。

<div class="article-meta">
<%- partial('post/date', {class_name: 'article-date', date_format: null}) %>
<%- partial('post/updated', {class_name: 'article-date', date_format: null}) %>
<%- partial('post/category') %>
</div>
  1. 对日期的样式进行微调

由于发布时间于更新时间的间隔太小,影响美观,因此在{theme_path}/source/css/_partial/article.styl中找到样式article-date,进行样式微调。

原样式:

.article-date
  @extend $block-caption
  float: left

在样式后增加一个空格,更新为

.article-date
  @extend $block-caption
  float: left
  &:after
    content: "\00a0"

©️ 本节内容部分参考 link

参考

  1. 本站使用的模版:hexo-theme-mashiro
  2. TODO:站内搜索 link